(1) Field of the Invention
The present invention relates to a parallel operation processor which is suited to process a large amount of data such as image data, audio data, or communication data.
(2) Description of the Related Art
In recent years, SIMD (Single Instruction stream Multiple Data Stream) processors have been widely used in the field of image, audio or communication processing. The SIMD processors have a plurality of processing elements and cause them to perform a parallel operation. To efficiently perform various processing such as image processing, it is important for such a SIMD processor to transfer data between the processing elements efficiently. Also, to perform a data transfer between two given processing elements, it is important how “network pattern values” are set. The “network pattern value” indicates, for each processing element, a processing element from which data is transferred. That is to say, the “network pattern value” indicates a data transfer pattern on a “processing element to processing element” basis.
Some conventional SIMD processors do not set the network pattern values by limiting the data transfers to, for example, only between adjacent processing elements, without performing data transfers between given processing elements. However, if data transfers between given processing elements are not performed freely, the restricted data transfer narrows down the application range of the SIMD processors, and deprives the SIMD processors of fully realizing the performance it provides for various purposes. Also, if data transfers between given processing elements can be performed freely, it is necessary to specify an immediate value, as a network pattern value, in an operand of an instruction to ensure free data transfers for each cycle. Here, suppose that 16 processing elements are provided in a SIMD processor, and that a network pattern value is to be indicated using a four-bit processing element number. It is then necessary to specify an eight-byte (=4×16 bits) immediate value in an operand of an instruction. This requires a transfer instruction having an eight-byte immediate value to be input to the SIMD processor each time the transfer pattern changes. For this reason, conventional SIMD processors require a large size of code to be programmed. This has increased the size of the memory for storing the program.